본문으로 건너뛰기

01-070. Colab과 AI 사용 준비

Colab과 AI 사용 준비

이 책에서는 Python과 Google Colab을 문석 환경으로 사용할 것이다. 이 장에서 Google Colab을 사용하는 방법을 배운다.

Google Colab 소개

Colab은 무료로 사용할 수 있는 클라우드 기반의 Python 실행 환경으로 초보자도 쉽게 시작할 수 있다.

Colab의 주요 특징

별도로 애플리케이션을 설치하지 않고 기본 설정 상태만으로 웹 브라우저만 있으면 바로 Python 코드를 작성하고 실행할 수 있다.

무료 사용

  • 기본적으로 무료로 제공되는 클라우드 컴퓨팅 환경
  • GPU와 TPU 등 고성능 하드웨어를 무료로 사용 가능
  • 제한된 사용 시간과 자원이지만 학습과 소규모 프로젝트에는 충분

즉시 사용 가능

  • 웹 브라우저만 있으면 어디서든 접근 가능
  • Python과 주요 데이터 분석 라이브러리가 미리 설치되어 있음
  • 복잡한 환경 설정 과정이 불필요

협업 친화적

  • Google Drive와 연동되어 파일 관리가 편리
  • 다른 사람과 노트북을 공유하고 동시 편집 가능
  • 주석과 코멘트를 통한 협업 지원

데이터 분석에 Colab을 사용하는 이유

과거에는 데이터 분석가가 데이터 분석 환경을 준비하는데도 시간이 필요할 정도로 복잡했지만, 웹브라우저를 이용해 주퍼티 노트북을 사용하게 되면서 그런 문제가 많이 해소되었다. 그 외에 Colab과 같은 웹기반의 도구가 주는 장점이 많다.

초보자 친화적

  • 복잡한 Python 설치와 라이브러리 관리 불필요
  • 코드와 결과를 함께 볼 수 있는 노트북 형태
  • 실행 버튼 하나로 코드를 바로 테스트 가능

강력한 성능

  • 클라우드 서버에서 실행되어 개인 컴퓨터 성능에 제약받지 않음
  • GPU 가속을 통한 빠른 계산 처리
  • 메모리 부족 문제 없이 큰 데이터셋 처리 가능

다양한 데이터 소스 연결

  • Google Drive, Google Sheets와 직접 연동
  • GitHub, Kaggle 등 외부 데이터 소스 접근
  • 웹에서 데이터 다운로드하여 바로 분석

Colab 시작하기

Colab의 사용법을 간단하게 알아본다. 가장 좋은 학습 방법은 직접 해보는 것이다.

Colab 접속하기

---화면넣기---

  1. 웹 브라우저에서 colab.research.google.com에 접속
  2. Google 계정으로 로그인
  3. "새 노트북" 버튼을 클릭하여 새로운 노트북 생성

기본 인터페이스 이해하기

Colab이나 Jupyer notebook의 노트북 구조의 환경에 익숙하지 않다면 적응하는데 시간이 필요할 수 있다. 노트북 구조는 셀이라는 블럭으로 전체 코드를 관리하고 실행하도록 되어 있다. 그리고 노트북을 서버에 있는 노트북 서비스 서버에 연결하고 셀을 실행한 뒤 결과를 받아 화면에 보여주는 구조를 가지고 있다.

---화면넣기---

노트북 구조

  • 셀(Cell): 코드나 텍스트를 입력하는 단위
  • 코드 셀: Python 코드를 작성하고 실행
  • 텍스트 셀: 마크다운으로 설명이나 문서 작성

주요 기능

  • 런타임 연결: 클라우드 서버와 연결하여 코드 실행
  • 파일 탐색기: 업로드된 파일들을 관리
  • 변수 탐색기: 현재 정의된 변수들을 확인

첫 번째 코드 실행

Python 코드로 Colab으로 실행해본다.

---화면넣기---

# 기본 라이브러리 import
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

# 간단한 데이터 생성
data = {'이름': ['김철수', '이영희', '박지민', '최현우'],
'나이': [25, 30, 35, 28],
'점수': [85, 92, 78, 95]}

df = pd.DataFrame(data)
print(df)
    이름  나이  점수
0 김철수 25 85
1 이영희 30 92
2 박지민 35 78
3 최현우 28 95

데이터 분석 환경 설정

필수 라이브러리 확인

Colab에는 데이터 분석에 필요한 주요 라이브러리들이 이미 설치되어 있다. 보통은 큰 문제가 없지만 필요한 것이 설치되어 있지 않거나 설치된 버전이 달라서 가지고 있는 코드가 실행 오류를 만드는 경우도 있다.

# 주요 라이브러리 버전 확인
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import plotly.express as px

print(f"Pandas 버전: {pd.__version__}")
print(f"NumPy 버전: {np.__version__}")
print(f"Matplotlib 버전: {plt.matplotlib.__version__}")
print(f"Seaborn 버전: {sns.__version__}")
Pandas 버전: 2.2.2
NumPy 버전: 2.0.2
Matplotlib 버전: 3.10.0
Seaborn 버전: 0.13.2

다음과 같은 프롬프트로 코도를 작성하게 해서 사용해도 된다.

💻참고 프롬프트: Python 데이터 분석 관련 페키지가 설치되어 있는지 확인하고 버전을 보여주는 코드를 작성해주세요.

추가 라이브러리 설치

필요한 라이브러리가 없다면 pip 명령어로 설치할 수 있다.

---화면넣기---

# 새로운 라이브러리 설치 예시
!pip install plotly
!pip install wordcloud
!pip install scikit-learn

Colab의 버전에 따라 위의 패키지는 이미 설치되어 있을 수 있다. 또 다른 필요한 패키지도 대부분 같은 방법으로 설치하면 된다.

한글 폰트 설정

한글 데이터를 시각화할 때 깨짐 현상을 방지하기 위한 폰트 설치 및 설정 방법이다. Colab이 서비스되고 있는 Linux에 폰트 패키지를 설치하고 matplotlib에서 사용할 수 있도록 설정해야 한다. 한글이 있는 시각화를 사용하지 않는다면 하지 않아도 된다.

# 한글 폰트 설정
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm

# 나눔 폰트 다운로드 및 설정
!apt-get install -y fonts-nanum
!fc-cache -fv
!rm ~/.cache/matplotlib -rf

plt.rcParams['font.family'] = 'NanumBarunGothic'
plt.rcParams['axes.unicode_minus'] = False

이 작업은 Colab에 접속이 종료되면 재시작 한 후 다시 해야 한다.

데이터 업로드와 관리

Google Drive 연동

Google Drive에 있는 데이터를 Colab에서 사용하는 방법이다.

# Google Drive 마운트
from google.colab import drive
drive.mount('/content/drive')

# Drive의 파일 경로 확인
!ls "/content/drive/MyDrive"

# CSV 파일 읽기 예시
df = pd.read_csv('/content/drive/MyDrive/data.csv')

파일 직접 업로드

로컬 컴퓨터에서 파일을 직접 업로드하는 방법이다.

# 파일 업로드 버튼 표시
from google.colab import files
uploaded = files.upload()

# 업로드된 파일 읽기
import io
df = pd.read_csv(io.BytesIO(uploaded['파일명.csv']))

웹에서 데이터 다운로드

인터넷에서 직접 데이터를 다운로드하여 사용하는 방법이다.

# URL에서 직접 데이터 읽기
url = 'https://example.com/data.csv'
df = pd.read_csv(url)

# 또는 wget을 사용해 파일 다운로드
!wget https://example.com/data.csv
df = pd.read_csv('data.csv')

AI 도구와 Colab 연동

Colab은 Gemini의 일부 기능이 지원되지만 그 외에 AI의 기능을 사용하려면 각 AI챗봇 서비스의 API를 통해서 접근하는 방법이 있다.

각 서비스에서 제공하는 방법으로 API 키를 받아서 소스 코드에 넣은 뒤 연동해서 사용할 수 있다. 사용 요금이 있으로 별도 과금이 되는 점을 주의해야 한다. 이후 나오는 소스에 있는 your-api-key-here 문자열은 각 서비스에서 제공하는 방식으로 받아온 키를 바꿔서 사용하도록 한다.

ChatGPT API 활용

Colab에서 ChatGPT API를 사용하여 데이터 분석을 보조받는 방법이다.

# OpenAI 라이브러리 설치
!pip install openai

# API 키 설정 (실제 사용시에는 보안에 주의)
import openai
openai.api_key = 'your-api-key-here'

# 데이터 분석 코드 생성 요청 함수
def get_analysis_code(data_description, analysis_goal):
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "당신은 데이터 분석 전문가입니다."},
{"role": "user", "content": f"데이터: {data_description}\n목표: {analysis_goal}\n이 데이터 분석을 위한 Python 코드를 작성해주세요."}
]
)
return response.choices[0].message.content

Google Gemini API 활용

Google의 Gemini API를 사용하는 방법이다.

# Google Generative AI 라이브러리 설치
!pip install google-generativeai

import google.generativeai as genai

# API 키 설정
genai.configure(api_key='your-api-key-here')

# 모델 초기화
model = genai.GenerativeModel('gemini-pro')

# 데이터 분석 조언 요청
def get_analysis_advice(data_info):
prompt = f"다음 데이터에 대한 분석 방향을 제안해주세요: {data_info}"
response = model.generate_content(prompt)
return response.text

Claude API 활용

Anthropic의 Claude API를 사용하는 방법이다.

# Anthropic 라이브러리 설치
!pip install anthropic

import anthropic

# API 키 설정
client = anthropic.Anthropic(
api_key='your-api-key-here'
)

# 데이터 분석 코드 생성 요청 함수
def get_claude_analysis(data_description, analysis_goal):
message = client.messages.create(
model="claude-3-sonnet-20240229",
max_tokens=1000,
temperature=0.1,
messages=[
{
"role": "user",
"content": f"데이터 분석 전문가로서 다음 정보를 바탕으로 Python 코드를 작성해주세요.\n\n데이터: {data_description}\n목표: {analysis_goal}\n\n코드는 pandas, matplotlib, seaborn을 활용해서 작성해주세요."
}
]
)
return message.content[0].text

# 사용 예시
# analysis_code = get_claude_analysis("고객 구매 데이터", "고객 세그먼테이션 분석")
# print(analysis_code)

AI와 협업하는 데이터 분석

1단계: 데이터 탐색

# 데이터 기본 정보 확인
print("데이터 기본 정보:")
print(df.info())
print("\n기초 통계량:")
print(df.describe())
print("\n결측값 확인:")
print(df.isnull().sum())

# AI에게 데이터 특성 분석 요청
data_summary = f"""
데이터 크기: {df.shape}
컬럼 정보: {list(df.columns)}
데이터 타입: {df.dtypes.to_dict()}
결측값: {df.isnull().sum().to_dict()}
"""

# AI에게 분석 방향 조언 요청 (위에서 정의한 함수 사용)
analysis_direction = get_analysis_advice(data_summary)
print("AI 분석 조언:")
print(analysis_direction)

2단계: AI 도움을 받은 분석

# AI가 제안한 분석 코드 실행
# 예: 상관관계 분석
correlation_matrix = df.corr()
plt.figure(figsize=(10, 8))
sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm', center=0)
plt.title('변수 간 상관관계')
plt.show()

# 결과 해석을 AI에게 요청
interpretation_request = f"""
상관관계 분석 결과:
{correlation_matrix.to_string()}

이 결과를 해석해주세요.
"""

3단계: 결과 검증과 보완

AI가 제공한 분석 결과를 사람이 검증하고 보완하는 단계다.

# 도메인 지식 기반 검증
# 1. 상식적으로 말이 되는가?
# 2. 데이터 수집 과정에서 발생할 수 있는 오류가 있는가?
# 3. 통계적 가정이 충족되었는가?

# 추가 분석 수행
# AI가 놓친 부분이나 더 깊이 있는 분석 수행

Colab 사용할 때 주의사항

Colab을 사용할 때 주의할 것이 있다.

자원 관리

세션 시간 제한

  • 무료 버전은 최대 12시간 연속 사용 제한
  • 90분간 미사용시 자동으로 세션 종료
  • 중요한 작업은 중간에 저장하는 습관 필요

메모리와 디스크 용량

  • RAM: 약 12GB 제공 (변동 가능)
  • 디스크: 약 68GB 임시 저장공간
  • 세션 종료시 임시 파일들은 삭제됨

데이터 보안

민감한 데이터 주의

  • 개인정보나 기밀 데이터는 업로드 시 주의
  • API 키나 비밀번호는 환경변수로 관리
  • 공개 노트북에는 민감한 정보 포함 금지

파일 관리

  • 중요한 결과물은 Google Drive에 저장
  • 정기적으로 백업 생성
  • 버전 관리를 위한 파일명 규칙 설정